package com.sl.modulars.trans.equipment.mapper;

import com.sl.modulars.trans.equipment.entity.*;
import com.sl.modulars.trans.equipment.entity.query.*;
import com.sl.modulars.trans.equipment.entity.vo.DwdEnvironmentDataVO;
import com.sl.modulars.trans.equipment.entity.vo.OdsFileGmdcEquipmentGatherVO;
import com.sl.modulars.trans.equipment.entity.vo.OdsGmdcMachineVO;
import com.sl.modulars.trans.equipment.entity.vo.OdsGmdcMaterialVO;
import mondrian.rolap.agg.LiteralStarPredicate;
import org.apache.ibatis.annotations.Mapper;
import org.elasticsearch.client.license.LicensesStatus;

import java.util.List;
import java.util.Map;

@Mapper
public interface EquipmentMapper {


    /**
     * 分页 查询设备清单数据
     * @param odsGmdcMachineQuery
     * @return
     */
    List<OdsGmdcMachineVO> getOdsGmdcMachinePage(OdsGmdcMachineQuery odsGmdcMachineQuery);


    OdsGmdcMachineVO getOdsGmdcMachineByNum(String machineNumber);



    /**
     * 根据设备分类编号查询设备总数
     * @param groupId 分类编号 可传可不传不传默认查询全部数据
     * @return
     */
    String getOdsGmdcMachineCount(String groupId);



    /**
     * 根据设备分类编号查询设备状态为运行中的数据
     * @param groupId 分类编号 可传可不传不传默认查询全部数据
     * @return
     */
    String getOdsGmdcMachineNormal(String groupId);



    /**
     * 根据设备分类编号查询设备状态为异常的数据
     * @param groupId 分类编号 可传可不传不传默认查询全部数据
     * @return
     */
    String getOdsGmdcMachineAbnormal(String groupId);


    /**
     * 根据设备资产编号 查询设备运行参数最新的一条数据
     * @param machineNumber
     * @return
     */
    OdsGmdcParamMachine getOdsGmdcParamMachineByMachineNumber(String machineNumber);


    /**
     * 根据设备资产编号查询设备详情数据
     * @param machineNumber 设备资产编号
     * @return
     */
    OdsGmdcMachineVO getOdsGmdcMachineByMachineNumber(String machineNumber);


    /**
     * 查询某个设备的设备数据详情
     * @param machineNumber
     * @param startTime
     * @param endTime
     * @return
     */
    List<OdsGmdcParamMachine> getOdsGmdcParamMachineByMachineNumberAndTime(String machineNumber,String startTime,String endTime);


    /**
     * 查询工装信息列表分页数据信息
     * @param odsGmdcToolingThingsQuery
     * @return
     */
    List<OdsGmdcToolingThings> getOdsGmdcToolingThingPage(OdsGmdcToolingThingsQuery odsGmdcToolingThingsQuery);


    /**
     * 查询可用的工装数据总量
     * @param groupId
     * @return
     */
    String getOdsGmdcToolingThingAvailable(String groupId);



    /**
     * 查询正在使用的工装数据总量
     * @param groupId
     * @return
     */
    String getOdsGmdcToolingThingReuse(String groupId);




    /**
     * 查询工装总量
     * @param groupId
     * @return
     */
    String getOdsGmdcToolingThingCount(String groupId);


    /**
     * 查询工刀量具列表数据
     * @param odsGmdcMeasuringToolsQuery
     * @return
     */
    List<OdsGmdcMeasuringTools> getOdsGmdcMeasuringToolsPage(OdsGmdcMeasuringToolsQuery odsGmdcMeasuringToolsQuery);




    /**
     * 查询可用公刀量具总量
     * @param groupId
     * @return
     */
    String getOdsGmdcMeasuringToolsAvailable(String groupId);



    /**
     * 查询工具间数量数
     * @param groupId
     * @return
     */
    String getOdsGmdcMeasuringToolsReuse(String groupId);




    /**
     * 查询公刀量具总量
     * @param groupId
     * @return
     */
    String getOdsGmdcMeasuringToolsCount(String groupId);



    /**
     * 查询物料编码列表数据
     * @param odsGmdcMaterialQuery
     * @return
     */
    List<OdsGmdcMaterialVO> getOdsGmdcMaterialPage(OdsGmdcMaterialQuery odsGmdcMaterialQuery);


    /**
     * 查询物料总数
     * @param groupId
     * @return
     */
    Map<String,Object> getOdsGmdcMaterialCount(String groupId);



    /**
     * 查询用户列表数据
     * @param odsGmdcPersonnelQuery
     * @return
     */
    List<OdsGmdcPersonnel> getOdsGmdcPersonnelPage(OdsGmdcPersonnelQuery odsGmdcPersonnelQuery);


    /**
     * 查询人员数据统计详情
     * @param groupId
     * @return
     */
    Map<String,Object> getOdsGmdcPersonnelCount(String groupId);


    /**
     * 查询全量数据树状结构
     * @param treeType
     * @return
     */
    List<OdsTree> getOdsTree(String treeType);


    /**
     * 查询计量设备列表数据
     * @param odsGmdcMeteringEquipmentQuery
     * @return
     */
    List<OdsGmdcMeteringEquipment> getOdsGmdcMeteringEquipmentPage(OdsGmdcMeteringEquipmentQuery odsGmdcMeteringEquipmentQuery);


    /**
     * 查询计量设备 展示维度数据
     * @param groupId
     * @return
     */
    Map<String,Object> getOdsGmdcMeteringEquipmentCount(String groupId);


    /**
     * 查询计量设备采集详情 分页查询
     * @param odsFileGmdcEquipmentGatherQuery
     * @return
     */
    List<OdsFileGmdcEquipmentGatherVO> getOdsFileGmdcEquipmentGather(OdsFileGmdcEquipmentGatherQuery odsFileGmdcEquipmentGatherQuery);


    /**
     * 查询指标卡 计量设备采集详情
     * @return deviceId
     */
    Map<String,Object> getOdsTreeByTypeGmdcMeteringCount(String deviceId);

    /**
     * 查询设备总量数据
     * @return
     */
    String getOdsGmdcMeteringEquipmentCountNum();


    /**
     * 查看采集数据详情
     * @param odsFileGmdcEquipmentGatherQuery
     * @return
     */
    List<OdsFileEquipmenCaptureDetails> getOdsFileEquipmenCaptureDetailsByGid(OdsFileEquipmenCaptureDetailsQuery odsFileGmdcEquipmentGatherQuery);


    /**
     * 查询环境折线图
     * @param strSn
     * @return
     */
    List<DwdEnvironmentData> getDwdEnvironmentDataByEnvironmentByStrSn(String strSn);


    /**
     * 查询环境列表数据
     * @param dwdEnvironmentDataQuery
     * @return
     */
    List<DwdEnvironmentDataVO> getDwdEnvironmentDataPage(DwdEnvironmentDataQuery dwdEnvironmentDataQuery);


    /**
     * C查询环境设备总数
     * @return
     */
    String getDwdEnvironmentCount();


    /**
     * 查询环境 采集数量 异常环境数
     * @param strSn
     * @return
     */
    Map<String,Object> getDwdEnvironmentDataByStrSn(String strSn);


    /**
     * 查询环境设备 用于构建树
     * @param groupId
     * @return
     */
    List<DwdEnvironment> getDwdEnvironmentDataList(String groupId);
}
